/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_ENGINE_JSI_JSI_CUSTOM_ENV_VIEW_WHITE_LIST_H
#define FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_ENGINE_JSI_JSI_CUSTOM_ENV_VIEW_WHITE_LIST_H

#include <unordered_set>
#include <string>

namespace OHOS::Ace::Framework {
static const std::unordered_set<std::string> supportedTargetsInCustomEnv = {
    "Flex",
    "TextController",
    "Text",
    "Animator",
    "SpringProp",
    "SpringMotion",
    "ScrollMotion",
    "Span",
    "NativeCustomSpan",
    "NativeLeadingMarginSpan",
    "SpanString",
    "MutableSpanString",
    "TextStyle",
    "DecorationStyle",
    "BaselineOffsetStyle",
    "LetterSpacingStyle",
    "UrlStyle",
    "NativeGestureStyle",
    "TextShadowSpan",
    "BackgroundColorStyle",
    "ImageAttachment",
    "ParagraphStyleSpan",
    "LineHeightSpan",
    "TextLayout",
    "Button",
    "Canvas",
    "LazyForEach",
    "LazyVGridLayout",
    "List",
    "ListItem",
    "ListItemGroup",
    "LoadingProgress",
    "Image",
    "ImageAnimator",
    "Counter",
    "Progress",
    "Column",
    "Row",
    "Grid",
    "GridItem",
    "GridContainer",
    "Slider",
    "Stack",
    "ForEach",
    "Divider",
    "Swiper",
    "Indicator",
    "Panel",
    "RepeatNative",
    "RepeatVirtualScrollNative",
    "RepeatVirtualScroll2Native",
    "NativeNavPathStack",
    "If",
    "Scroll",
    "ScrollBar",
    "GridRow",
    "GridCol",
    "Stepper",
    "StepperItem",
    "Toggle",
    "ToolBarItem",
    "Blank",
    "Calendar",
    "Rect",
    "Shape",
    "Path",
    "Circle",
    "Line",
    "Polygon",
    "Polyline",
    "Ellipse",
    "Tabs",
    "TabContent",
    "TextPicker",
    "TimePicker",
    "DatePicker",
    "PageTransitionEnter",
    "PageTransitionExit",
    "RowSplit",
    "ColumnSplit",
    "AlphabetIndexer",
    "Hyperlink",
    "Radio",
    "ActionSheet",
    "AlertDialog",
    "ContextMenu",
    "Particle",
    "__KeyboardAvoid__",
    "TextMenu",
    "TextArea",
    "TextInput",
    "TextClock",
    "SideBarContainer",
    "DataPanel",
    "Badge",
    "Gauge",
    "Marquee",
    "Menu",
    "MenuItem",
    "MenuItemGroup",
    "Gesture",
    "TapGesture",
    "LongPressGesture",
    "PanGesture",
    "SwipeGesture",
    "PinchGesture",
    "RotationGesture",
    "GestureGroup",
    "PanGestureOption",
    "PanGestureOptions",
    "NativeCustomDialogController",
    "Scroller",
    "ListScroller",
    "SwiperController",
    "IndicatorController",
    "TabsController",
    "CalendarController",
    "CanvasRenderingContext2D",
    "OffscreenCanvasRenderingContext2D",
    "CanvasGradient",
    "ImageData",
    "Path2D",
    "RenderingContextSettings",
    "Matrix2D",
    "CanvasPattern",
    "DrawingRenderingContext",
    "Search",
    "Select",
    "SearchController",
    "TextClockController",
    "Sheet",
    "JSClipboard",
    "PatternLock",
    "PatternLockController",
    "TextTimer",
    "TextAreaController",
    "TextInputController",
    "TextTimerController",
    "Checkbox",
    "CheckboxGroup",
    "Refresh",
    "WaterFlow",
    "FlowItem",
    "RelativeContainer",
    "__Common__",
    "__Recycle__",
    "LinearGradient",
    "ImageSpan",
    "RichEditor",
    "RichEditorController",
    "RichEditorStyledStringController",
    "LayoutManager",
    "NodeContainer",
    "__JSBaseNode__",
    "SymbolGlyph",
    "SymbolSpan",
    "ContainerSpan",
    "__RectShape__",
    "__CircleShape__",
    "__EllipseShape__",
    "__PathShape__",
    "ContentSlot",
    "ArkUINativeNodeContent",
    "GestureRecognizer",
    "EventTargetInfo",
    "ScrollableTargetInfo",
    "PanRecognizer",
    "LinearIndicator",
    "LinearIndicatorController",
    "TapRecognizer",
    "LongPressRecognizer",
    "SwipeRecognizer",
    "PinchRecognizer",
    "RotationRecognizer",
    "TouchRecognizer",
};
} // namespace OHOS::Ace::Framework

#endif // FRAMEWORKS_BRIDGE_DECLARATIVE_FRONTEND_ENGINE_JSI_JSI_CUSTOM_ENV_VIEW_WHITE_LIST_H
